var lttimes = 0;
var gztimes = 0;
/**
 * 初始化日期时间控件
 */

function initDateTimeControls() {
	//开始时间
	new Rolldate({
		el: '#startTime',
		format: 'YYYY-MM-DD hh:mm',
		beginYear: 2015,
		endYear: 2050,
		trigger: 'click',
		lang: {
			title: '请选择开始时间',
		},
		confirm: function(date) {
			jisuanKaishi(date);
		}
	})
	//结束时间
	new Rolldate({
		el: '#endTime',
		format: 'YYYY-MM-DD hh:mm',
		beginYear: 2015,
		endYear: 2050,
		trigger: 'click',
		lang: {
			title: '请选择结束时间',
		},
		confirm: function(date) {
			jisuanJieshu(date);
		}
	})
	//出发时间
	new Rolldate({
		el: '#departureTime',
		format: 'YYYY-MM-DD hh:mm',
		beginYear: 2015,
		endYear: 2050,
		trigger: 'click',
		lang: {
			title: '请选择出发时间',
		},
		confirm: function(date) {
			jisuanChufa(date);
		}
	})
	//到达现场时间
	new Rolldate({
		el: '#arriveTime',
		format: 'YYYY-MM-DD hh:mm',
		beginYear: 2015,
		endYear: 2050,
		trigger: 'click',
		lang: {
			title: '请选择到达现场时间',
		},
		confirm: function(date) {
			jisuanDaoda(date);
		}
	})
}

/**
 * 日期关系校验
 */
function checkTimes(){
	var d = h("#departureTime").val();//出发时间
	var a = h("#arriveTime").val();//到达现场时间
	var s = h("#startTime").val();//开始时间
	var e = h("#endTime").val();//结束时间
	var dd = d.replace(/-/g,'/').trim();//出发时间
	var ad = a.replace(/-/g,'/').trim();//到达现场时间
	var sd = s.replace(/-/g,'/').trim();//开始时间
	var ed = e.replace(/-/g,'/').trim();//结束时间
	
	if (new Date(ad).getTime() < new Date(dd).getTime()) {
		app.toast("出发时间不可晚于到达现场时间");
		return false;
	} else if (new Date(sd).getTime() < new Date(ad).getTime()) {
		app.toast("到达现场时间不可晚于工作开始时间");
		return false;
	} else if (new Date(ed).getTime() < new Date(sd).getTime()) {
		app.toast("工作开始时间不可晚于工作结束时间");
		return false;
	} else {
		var cha = daysDifference(s.substring(0, s.indexOf(" ")).trim(), e.substring(0, s.indexOf(" ")).trim());
		if (cha <= 24) {
			return true;
		} else {
			app.toast("工作开始时间与工作结束时间日期差不可大于1天");
			return false;
		}
	}
}

/**
 * 计算前清空
 */
function timeClean(){
	var a = h("#arriveTime").val();
	var d = h("#departureTime").val();
	var s = h("#startTime").val();
	var e = h("#endTime").val();
	if (a == "") {
		h("#journeyHour").val("");
	}
	if (d == "") {
		h("#journeyHour").val("");
	}
	if (s == "") {
		h("#workHour").val("");
	}
	if (e == ""){
		h("#workHour").val("");
	}
}

/**
 * 到达现场时间调用：到达现场时间 - 出发时间
 * @param {Object} date
 */
function jisuanDaoda(date){
	// 计算前清空
	timeClean();
	var d = h("#departureTime").val();
	var a = date;
	var s = h("#startTime").val();
	var dd = d.replace(/-/g,'/').trim();//出发时间
	var ad = a.replace(/-/g,'/').trim();//到达现场时间
	var sd = s.replace(/-/g,'/').trim();//开始时间
	if (dd) {
		if (new Date(ad).getTime() < new Date(dd).getTime()) {
			app.toast("出发时间不可晚于到达现场时间");
			return false;
		} else {
			var cha = timeDifference(new Date(dd).getTime(), new Date(ad).getTime());
			lttimes = cha;
			h("#journeyHour").val(cha);
		}
	}
	if (sd) {
		if (new Date(sd).getTime() < new Date(ad).getTime()) {
			app.toast("到达现场时间不可晚于工作开始时间");
			return false;
		}
	}
}

/**
 * 出发时间调用：到达现场时间 - 出发时间
 * @param {Object} date
 */
function jisuanChufa(date){
	// 计算前清空
	timeClean();
	var d = date;
	var a = h("#arriveTime").val();
	var dd = d.replace(/-/g,'/').trim();//出发时间
	var ad = a.replace(/-/g,'/').trim();//到达现场时间
	if (ad) {
		if (new Date(ad).getTime() < new Date(dd).getTime()) {
			app.toast("出发时间不可晚于到达现场时间");
			return false;
		} else {
			var cha = timeDifference(new Date(dd).getTime(), new Date(ad).getTime());
			lttimes = cha;
			h("#journeyHour").val(cha);
		}
	}
}

/**
 * 开始时间调用：结束时间 - 开始时间
 * @param {Object} date
 */
function jisuanKaishi(date){
	// 计算前清空
	timeClean();
	var a = h("#arriveTime").val();
	var s = date;
	var e = h("#endTime").val();
	var ad = a.replace(/-/g,'/').trim();//出发时间
	var sd = s.replace(/-/g,'/').trim();//开始时间
	var ed = e.replace(/-/g,'/').trim();//结束时间
	if (ad) {
		if (new Date(sd).getTime() < new Date(ad).getTime()) {
			app.toast("到达现场时间不可晚于工作开始时间");
			return false;
		}
	}
	if (ed) {
		if (new Date(ed).getTime() < new Date(sd).getTime()) {
			app.toast("工作开始时间不可晚于工作结束时间");
			return false;
		} else {
			var tian = daysDifference(s.substring(0, s.indexOf(" ")).trim(), e.substring(0, s.indexOf(" ")).trim());
			if (tian > 1) {
				app.toast("工作开始时间与工作结束时间日期差不可大于1天");
				return false;
			} else {
				var cha = timeDifference(new Date(sd).getTime(), new Date(ed).getTime());
				gztimes = cha;
				h("#workHour").val(cha);
			}
		}
	}
}

function jisuanKaishiForEdit(){
	var s = h("#startTime").val();
	var e = h("#endTime").val();
	var sd = s.replace(/-/g,'/').trim();//开始时间
	var ed = e.replace(/-/g,'/').trim();//结束时间
	var cha = timeDifference(new Date(sd).getTime(), new Date(ed).getTime());
	gztimes = cha;
}
function jisuanChufaForEdit(){
	var d = h("#departureTime").val();
	var a = h("#arriveTime").val();
	var dd = d.replace(/-/g,'/').trim();//出发时间
	var ad = a.replace(/-/g,'/').trim();//到达现场时间
	var cha = timeDifference(new Date(dd).getTime(), new Date(ad).getTime());
	lttimes = cha;
}

/**
 * 结束时间调用：结束时间 - 开始时间
 * @param {Object} date
 */
function jisuanJieshu(date){
	// 计算前清空
	timeClean();
	var s = h("#startTime").val();
	var e = date;
	var sd = s.replace(/-/g,'/').trim();//开始时间
	var ed = e.replace(/-/g,'/').trim();//结束时间
	if (sd) {
		if (new Date(ed).getTime() < new Date(sd).getTime()) {
			app.toast("工作开始时间不可晚于工作结束时间");
			return false;
		} else {
			var tian = daysDifference(s.substring(0, s.indexOf(" ")).trim(), e.substring(0, s.indexOf(" ")).trim());
			if (tian > 1) {
				app.toast("工作开始时间与工作结束时间日期差不可大于1天");
				return false;
			} else {
				var cha = timeDifference(new Date(sd).getTime(), new Date(ed).getTime());
				gztimes = cha;
				h("#workHour").val(cha);
			}
		}
	}
}

/**时间差计算(单位：小时，保留2位小数)
 * @param {Object} start
 * @param {Object} end
 */
function timeDifference(start, end) {
	var cha = end - start;
	var days = (cha/(3600*1000)).toFixed(2) //小时保留2位小数
	// var days = Math.floor(cha/(24*3600*1000))
	// console.log(cha + "============" + days)
	return days;
}

/**时间差计算（天 整数）
 * @param {Object} start
 * @param {Object} end
 */
function daysDifference(start, end) {
	var dateStart = new Date(start);
	var dateEnd = new Date(end);
	var difValue = ((dateEnd - dateStart) / (1000 * 60 * 60 * 24));
	return difValue;
}